﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using MySql.Data.MySqlClient;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Web.Configuration;

/// <summary>
/// Summary description for CheckList
/// </summary>
public class CheckList : Banco
{
    private string Codigo;
    private string Descricao;
    private string ComoFazer;
    private DataTable dt;
    private int SO;
    string conexao = WebConfigurationManager.ConnectionStrings["chamados"].ConnectionString;

    /// <summary>
    /// Construtor vazio.
    /// </summary>
    public CheckList()
    {
    }
    /// <summary>
    /// Construtor checklist para inserir um novo.
    /// </summary>
    /// <param name="Descricao">Descrição do CheckList.</param>
    public CheckList(string Descricao, string ComoFazer, int SO)
    {
        this.Descricao = Descricao;
        this.ComoFazer = ComoFazer;
        this.SO = SO;
    }
    /// <summary>
    /// Salvar no banco de dados o CheckList atual.
    /// </summary>
    /// <returns>Retorna sucesso ou falha da transação.</returns>
    public bool Salvar()
    {
        return Comando("INSERT INTO checklist (Descricao, ComoFazer, SO) VALUES ('" + Descricao + "', '" + ComoFazer + "',"+SO+")");
    }
    /// <summary>
    /// Método para salvar um SO.
    /// </summary>
    /// <param name="Descricao">Nome do Sistema Operacional.</param>
    /// <returns>Retorna sucesso ou falha da transação.</returns>
    public bool SalvarSO(string Descricao)
    {
        return Comando("INSERT INTO so (Descricao) Values ('"+Descricao+"')");
    }
    /// <summary>
    /// Apagar do banco dados algum registro.
    /// </summary>
    /// <param name="Codigo">Codigo do registro a ser deletado.</param>
    /// <returns>Retorna sucesso ou falha da transação.</returns>
    public bool Apagar(int Codigo)
    {
        return Comando("DELETE FROM checklist WHERE (checklist.Codigo = " + Codigo + ")");
    }
    /// <summary>
    /// Trocar algum registro do banco.
    /// </summary>
    /// <param name="Codigo">Identificação do checklist.</param>
    /// <param name="NovaDescricao">Nova descrição para o checklist.</param>
    /// <returns>Retorna sucesso ou falha da transação.</returns>
    public bool TrocarValor(int Codigo, string NovaDescricao)
    {
        return Comando("UPDATE checklist SET Descricao ='"+NovaDescricao+"' WHERE (checklist.Codigo = "+Codigo+")");
    }
    /// <summary>
    /// Gera DataTable com Item | Check - List.
    /// </summary>
    /// <returns>Se ocorrer algum erro a função retorna false.</returns>
    private bool GerarDataTable()
    {
        try
        {
            DataColumn dtc;
            dtc = new DataColumn();
            dtc.DataType = Type.GetType("System.String");
            dtc.ColumnName = "Item";
            dt.Columns.Add(dtc);

            dtc = new DataColumn();
            dtc.DataType = Type.GetType("System.String");
            dtc.ColumnName = "Check - List";
            dt.Columns.Add(dtc);
            
            return true;
        }
        catch
        {
            return false;
        }
    }
    /// <summary>
    /// 
    /// </summary>
    /// <returns></returns>
    public DataTable CriarCheckList()
    {
        try
        {
            string sql = "SELECT Descricao FROM checklist ORDER BY Descricao";

            MySqlConnection conection = new MySqlConnection(conexao);
            MySqlCommand comando = new MySqlCommand(sql, conection);

            MySqlDataReader dtreader;
            conection.Open();
            dtreader = comando.ExecuteReader();

            if (dtreader.HasRows)
            {
                int cont = 1;
                while (dtreader.Read())
                {
                    DataRow linha;

                    linha = dt.NewRow();

                    linha["Item"] = Convert.ToString(cont);
                    linha["Check - List"] = dtreader.GetValue(0).ToString();

                    dt.Rows.Add(linha);
                    cont = cont + 1;
                }
            }
            conection.Close();
        }
        catch
        { }
        
        return dt;
    }
}